package svr

import "sort"

// Strval 获取变量的字符串值
// 浮点型 3.0将会转换成字符串3, "3"
// 非数值或字符类型的变量将会被转换成JSON格式字符串
// func InterfaceToString(value interface{}) string {
// 	var key string
// 	if value == nil {
// 		return key
// 	}

// 	switch value.(type) {
// 	case float64:
// 		ft := value.(float64)
// 		key = strconv.FormatFloat(ft, 'f', -1, 64)
// 	case float32:
// 		ft := value.(float32)
// 		key = strconv.FormatFloat(float64(ft), 'f', -1, 64)
// 	case int:
// 		it := value.(int)
// 		key = strconv.Itoa(it)
// 	case uint:
// 		it := value.(uint)
// 		key = strconv.Itoa(int(it))
// 	case int8:
// 		it := value.(int8)
// 		key = strconv.Itoa(int(it))
// 	case uint8:
// 		it := value.(uint8)
// 		key = strconv.Itoa(int(it))
// 	case int16:
// 		it := value.(int16)
// 		key = strconv.Itoa(int(it))
// 	case uint16:
// 		it := value.(uint16)
// 		key = strconv.Itoa(int(it))
// 	case int32:
// 		it := value.(int32)
// 		key = strconv.Itoa(int(it))
// 	case uint32:
// 		it := value.(uint32)
// 		key = strconv.Itoa(int(it))
// 	case int64:
// 		it := value.(int64)
// 		key = strconv.FormatInt(it, 10)
// 	case uint64:
// 		it := value.(uint64)
// 		key = strconv.FormatUint(it, 10)
// 	case string:
// 		key = value.(string)
// 	case []byte:
// 		key = string(value.([]byte))
// 	default:
// 		newValue, _ := json.Marshal(value)
// 		key = string(newValue)
// 	}

// 	return key
// }

func SliceRemoveDuplicates(slice []string) []string {
	sort.Strings(slice)
	i := 0
	var j int
	for {
		if i >= len(slice)-1 {
			break
		}

		for j = i + 1; j < len(slice) && slice[i] == slice[j]; j++ {
		}

		slice = append(slice[:i+1], slice[j:]...)
		i++
	}

	return slice
}
